{
  "openapi": "3.0.2",
  "info": {
    "title": "Кошачий благотворительный фонд",
    "description": "Сервис для поддержки котиков!",
    "version": "0.1.0"
  },
  "paths": {
    "/charity_project/": {
      "get": {
        "tags": [
          "charity_projects"
        ],
        "summary": "Get All Charity Projects",
        "description": "Возвращает список всех проектов.",
        "operationId": "get_all_charity_projects_charity_project__get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Get All Charity Projects Charity Project  Get",
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CharityProjectDB"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "charity_projects"
        ],
        "summary": "Create Charity Project",
        "description": "Только для суперюзеров.\n\nСоздаёт благотворительный проект.",
        "operationId": "create_charity_project_charity_project__post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CharityProjectCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CharityProjectDB"
                }
              }
            }
          },
          "400": {
            "description": "Not unique name",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "projectClosed": {
                    "summary": "Not unique name",
                    "value": {
                      "detail": "Проект с таким именем уже существует!"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing token or inactive user.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "detail": {
                      "type": "string",
                      "example": "Unauthorized"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Not a superuser.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "detail": {
                      "type": "string",
                      "example": "Forbidden"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ]
      }
    },
    "/charity_project/{project_id}": {
      "delete": {
        "tags": [
          "charity_projects"
        ],
        "summary": "Delete Charity Project",
        "description": "Только для суперюзеров.\n\nУдаляет проект.\nНельзя удалить проект, в который уже были инвестированы средства,\nего можно только закрыть.",
        "operationId": "delete_charity_project_charity_project__project_id__delete",
        "parameters": [
          {
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "integer"
            },
            "name": "project_id",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CharityProjectDB"
                }
              }
            }
          },
          "400": {
            "description": "Нельзя удалять закрытый проект или проект, в который уже были инвестированы средства.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "projectClosed": {
                    "summary": "Project closed",
                    "value": {
                      "detail": "В проект были внесены средства, не подлежит удалению!"
                    }
                  },
                  "projectWithDonations": {
                    "summary": "Project with donations",
                    "value": {
                      "detail": "В проект были внесены средства, не подлежит удалению!"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing token or inactive user.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "detail": {
                      "type": "string",
                      "example": "Unauthorized"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Not a superuser.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "detail": {
                      "type": "string",
                      "example": "Forbidden"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ]
      },
      "patch": {
        "tags": [
          "charity_projects"
        ],
        "summary": "Update Charity Project",
        "description": "Только для суперюзеров.\n\nЗакрытый проект нельзя редактировать;\nнельзя установить требуемую сумму меньше уже вложенной.",
        "operationId": "update_charity_project_charity_project__project_id__patch",
        "parameters": [
          {
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "integer"
            },
            "name": "project_id",
            "in": "path"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CharityProjectUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CharityProjectDB"
                }
              }
            }
          },
          "401": {
            "description": "Missing token or inactive user.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "detail": {
                      "type": "string",
                      "example": "Unauthorized"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid operations",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "fullAmountTooLow": {
                    "summary": "Full amount lower than invested amount",
                    "value": {
                      "detail": "Нелья установить значение full_amount меньше уже вложенной суммы."
                    }
                  },
                  "notUniqueName": {
                    "summary": "Not unique name",
                    "value": {
                      "detail": "Проект с таким именем уже существует!"
                    }
                  },
                  "projectClosed": {
                    "summary": "Project closed",
                    "value": {
                      "detail": "Закрытый проект нельзя редактировать!"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Not a superuser.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "detail": {
                      "type": "string",
                      "example": "Forbidden"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ]
      }
    },
    "/donation/": {
      "get": {
        "tags": [
          "donations"
        ],
        "summary": "Get All Donations",
        "description": "Только для суперюзеров.\n\nВозвращает список всех пожертвований.",
        "operationId": "get_all_donations_donation__get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Get All Donations Donation  Get",
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DonationAdminDB"
                  }
                }
              }
            }
          },
          "401": {
              "description": "Missing token or inactive user.",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "detail": {
                        "type": "string",
                        "example": "Unauthorized"
                      }
                    }
                  }
                }
              }
            },
            "403": {
              "description": "Not a superuser.",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "detail": {
                        "type": "string",
                        "example": "Forbidden"
                      }
                    }
                  }
                }
              }
            }
        },
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ]
      },
      "post": {
        "tags": [
          "donations"
        ],
        "summary": "Create Donation",
        "description": "Сделать пожертвование.",
        "operationId": "create_donation_donation__post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DonationCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DonationDB"
                }
              }
            }
          },
          "401": {
            "description": "Missing token or inactive user.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "detail": {
                      "type": "string",
                      "example": "Unauthorized"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ]
      }
    },
    "/donation/my": {
      "get": {
        "tags": [
          "donations"
        ],
        "summary": "Get User Donations",
        "description": "Вернуть список пожертвований пользователя, выполняющего запрос.",
        "operationId": "get_user_donations_donation_my_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Get User Donations Donation My Get",
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DonationDB"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing token or inactive user.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "detail": {
                      "type": "string",
                      "example": "Unauthorized"
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ]
      }
    },
    "/auth/jwt/login": {
      "post": {
        "tags": [
          "auth"
        ],
        "summary": "Auth:Jwt.Login",
        "operationId": "auth_jwt_login_auth_jwt_login_post",
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/Body_auth_jwt_login_auth_jwt_login_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BearerResponse"
                },
                "example": {
                  "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiOTIyMWZmYzktNjQwZi00MzcyLTg2ZDMtY2U2NDJjYmE1NjAzIiwiYXVkIjoiZmFzdGFwaS11c2VyczphdXRoIiwiZXhwIjoxNTcxNTA0MTkzfQ.M10bjOe45I5Ncu_uXvOmVV8QxnL-nZfcH96U90JaocI",
                  "token_type": "bearer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                },
                "examples": {
                  "LOGIN_BAD_CREDENTIALS": {
                    "summary": "Bad credentials or the user is inactive.",
                    "value": {
                      "detail": "LOGIN_BAD_CREDENTIALS"
                    }
                  },
                  "LOGIN_USER_NOT_VERIFIED": {
                    "summary": "The user is not verified.",
                    "value": {
                      "detail": "LOGIN_USER_NOT_VERIFIED"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/auth/jwt/logout": {
      "post": {
        "tags": [
          "auth"
        ],
        "summary": "Auth:Jwt.Logout",
        "operationId": "auth_jwt_logout_auth_jwt_logout_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Missing token or inactive user."
          }
        },
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ]
      }
    },
    "/auth/register": {
      "post": {
        "tags": [
          "auth"
        ],
        "summary": "Register:Register",
        "operationId": "register_register_auth_register_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserRead"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                },
                "examples": {
                  "REGISTER_USER_ALREADY_EXISTS": {
                    "summary": "A user with this email already exists.",
                    "value": {
                      "detail": "REGISTER_USER_ALREADY_EXISTS"
                    }
                  },
                  "REGISTER_INVALID_PASSWORD": {
                    "summary": "Password validation failed.",
                    "value": {
                      "detail": {
                        "code": "REGISTER_INVALID_PASSWORD",
                        "reason": "Password should be at least 3 characters"
                      }
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/users/me": {
      "get": {
        "tags": [
          "users"
        ],
        "summary": "Users:Current User",
        "operationId": "users_current_user_users_me_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserRead"
                }
              }
            }
          },
          "401": {
            "description": "Missing token or inactive user."
          }
        },
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ]
      },
      "patch": {
        "tags": [
          "users"
        ],
        "summary": "Users:Patch Current User",
        "operationId": "users_patch_current_user_users_me_patch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserRead"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                },
                "examples": {
                  "UPDATE_USER_EMAIL_ALREADY_EXISTS": {
                    "summary": "A user with this email already exists.",
                    "value": {
                      "detail": "UPDATE_USER_EMAIL_ALREADY_EXISTS"
                    }
                  },
                  "UPDATE_USER_INVALID_PASSWORD": {
                    "summary": "Password validation failed.",
                    "value": {
                      "detail": {
                        "code": "UPDATE_USER_INVALID_PASSWORD",
                        "reason": "Password should be at least 3 characters"
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing token or inactive user."
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ]
      }
    },
    "/users/{id}": {
      "get": {
        "tags": [
          "users"
        ],
        "summary": "Users:User",
        "operationId": "users_user_users__id__get",
        "parameters": [
          {
            "required": true,
            "schema": {
              "title": "Id"
            },
            "name": "id",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserRead"
                }
              }
            }
          },
          "401": {
            "description": "Missing token or inactive user."
          },
          "403": {
            "description": "Not a superuser."
          },
          "404": {
            "description": "The user does not exist."
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ]
      },
      "patch": {
        "tags": [
          "users"
        ],
        "summary": "Users:Patch User",
        "operationId": "users_patch_user_users__id__patch",
        "parameters": [
          {
            "required": true,
            "schema": {
              "title": "Id"
            },
            "name": "id",
            "in": "path"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserRead"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                },
                "examples": {
                  "UPDATE_USER_EMAIL_ALREADY_EXISTS": {
                    "summary": "A user with this email already exists.",
                    "value": {
                      "detail": "UPDATE_USER_EMAIL_ALREADY_EXISTS"
                    }
                  },
                  "UPDATE_USER_INVALID_PASSWORD": {
                    "summary": "Password validation failed.",
                    "value": {
                      "detail": {
                        "code": "UPDATE_USER_INVALID_PASSWORD",
                        "reason": "Password should be at least 3 characters"
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing token or inactive user."
          },
          "403": {
            "description": "Not a superuser."
          },
          "404": {
            "description": "The user does not exist."
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "BearerResponse": {
        "title": "BearerResponse",
        "required": [
          "access_token",
          "token_type"
        ],
        "type": "object",
        "properties": {
          "access_token": {
            "title": "Access Token",
            "type": "string"
          },
          "token_type": {
            "title": "Token Type",
            "type": "string"
          }
        }
      },
      "Body_auth_jwt_login_auth_jwt_login_post": {
        "title": "Body_auth_jwt_login_auth_jwt_login_post",
        "required": [
          "username",
          "password"
        ],
        "type": "object",
        "properties": {
          "grant_type": {
            "title": "Grant Type",
            "pattern": "password",
            "type": "string"
          },
          "username": {
            "title": "Username",
            "type": "string"
          },
          "password": {
            "title": "Password",
            "type": "string"
          },
          "scope": {
            "title": "Scope",
            "type": "string",
            "default": ""
          },
          "client_id": {
            "title": "Client Id",
            "type": "string"
          },
          "client_secret": {
            "title": "Client Secret",
            "type": "string"
          }
        }
      },
      "CharityProjectCreate": {
        "title": "CharityProjectCreate",
        "required": [
          "name",
          "description",
          "full_amount"
        ],
        "type": "object",
        "properties": {
          "name": {
            "title": "Name",
            "maxLength": 100,
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "full_amount": {
            "title": "Full Amount",
            "exclusiveMinimum": 0,
            "type": "integer"
          }
        },
        "additionalProperties": false
      },
      "CharityProjectDB": {
        "title": "CharityProjectDB",
        "required": [
          "name",
          "description",
          "full_amount",
          "id",
          "invested_amount",
          "fully_invested",
          "create_date"
        ],
        "type": "object",
        "properties": {
          "name": {
            "title": "Name",
            "maxLength": 100,
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "full_amount": {
            "title": "Full Amount",
            "exclusiveMinimum": 0,
            "type": "integer"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "invested_amount": {
            "title": "Invested Amount",
            "type": "integer"
          },
          "fully_invested": {
            "title": "Fully Invested",
            "type": "boolean"
          },
          "create_date": {
            "title": "Create Date",
            "type": "string",
            "format": "date-time"
          },
          "close_date": {
            "title": "Close Date",
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "CharityProjectUpdate": {
        "title": "CharityProjectUpdate",
        "type": "object",
        "properties": {
          "name": {
            "title": "Name",
            "maxLength": 100,
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "full_amount": {
            "title": "Full Amount",
            "exclusiveMinimum": 0,
            "type": "integer"
          }
        },
        "additionalProperties": false
      },
      "DonationAdminDB": {
        "title": "DonationAdminDB",
        "required": [
          "full_amount",
          "id",
          "create_date",
          "user_id",
          "invested_amount",
          "fully_invested"
        ],
        "type": "object",
        "properties": {
          "full_amount": {
            "title": "Full Amount",
            "exclusiveMinimum": 0,
            "type": "integer"
          },
          "comment": {
            "title": "Comment",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "create_date": {
            "title": "Create Date",
            "type": "string",
            "format": "date-time"
          },
          "user_id": {
            "title": "User Id",
            "type": "integer"
          },
          "invested_amount": {
            "title": "Invested Amount",
            "type": "integer"
          },
          "fully_invested": {
            "title": "Fully Invested",
            "type": "boolean"
          },
          "close_date": {
            "title": "Close Date",
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "DonationCreate": {
        "title": "DonationCreate",
        "required": [
          "full_amount"
        ],
        "type": "object",
        "properties": {
          "full_amount": {
            "title": "Full Amount",
            "exclusiveMinimum": 0,
            "type": "integer"
          },
          "comment": {
            "title": "Comment",
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "DonationDB": {
        "title": "DonationDB",
        "required": [
          "full_amount",
          "id",
          "create_date"
        ],
        "type": "object",
        "properties": {
          "full_amount": {
            "title": "Full Amount",
            "exclusiveMinimum": 0,
            "type": "integer"
          },
          "comment": {
            "title": "Comment",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "create_date": {
            "title": "Create Date",
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "ErrorModel": {
        "title": "ErrorModel",
        "required": [
          "detail"
        ],
        "type": "object",
        "properties": {
          "detail": {
            "title": "Detail",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              }
            ]
          }
        }
      },
      "HTTPValidationError": {
        "title": "HTTPValidationError",
        "type": "object",
        "properties": {
          "detail": {
            "title": "Detail",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            }
          }
        }
      },
      "UserCreate": {
        "title": "UserCreate",
        "required": [
          "email",
          "password"
        ],
        "type": "object",
        "properties": {
          "email": {
            "title": "Email",
            "type": "string",
            "format": "email"
          },
          "password": {
            "title": "Password",
            "type": "string"
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean",
            "default": true
          },
          "is_superuser": {
            "title": "Is Superuser",
            "type": "boolean",
            "default": false
          },
          "is_verified": {
            "title": "Is Verified",
            "type": "boolean",
            "default": false
          }
        }
      },
      "UserRead": {
        "title": "UserRead",
        "required": [
          "email"
        ],
        "type": "object",
        "properties": {
          "id": {
            "title": "Id"
          },
          "email": {
            "title": "Email",
            "type": "string",
            "format": "email"
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean",
            "default": true
          },
          "is_superuser": {
            "title": "Is Superuser",
            "type": "boolean",
            "default": false
          },
          "is_verified": {
            "title": "Is Verified",
            "type": "boolean",
            "default": false
          }
        },
        "description": "Base User model."
      },
      "UserUpdate": {
        "title": "UserUpdate",
        "type": "object",
        "properties": {
          "password": {
            "title": "Password",
            "type": "string"
          },
          "email": {
            "title": "Email",
            "type": "string",
            "format": "email"
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean"
          },
          "is_superuser": {
            "title": "Is Superuser",
            "type": "boolean"
          },
          "is_verified": {
            "title": "Is Verified",
            "type": "boolean"
          }
        }
      },
      "ValidationError": {
        "title": "ValidationError",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "type": "object",
        "properties": {
          "loc": {
            "title": "Location",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            }
          },
          "msg": {
            "title": "Message",
            "type": "string"
          },
          "type": {
            "title": "Error Type",
            "type": "string"
          }
        }
      }
    },
    "securitySchemes": {
      "OAuth2PasswordBearer": {
        "type": "oauth2",
        "flows": {
          "password": {
            "scopes": {},
            "tokenUrl": "auth/jwt/login"
          }
        }
      }
    }
  }
}
